package 算法.NiuKe.JZ;

import java.util.HashMap;

/**
 * @author:谢君臣
 * @Date:2021/3/2410:07
 * @version:1.0
 * @function:
 * 数组中有一个数字出现的次数超过数组长度的一半，请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。
 * 由于数字2在数组中出现了5次，超过数组长度的一半，因此输出2。如果不存在则输出0。
 */
public class JZ28 {
    public static void main(String[] args) {

    }
    public int MoreThanHalfNum_Solution(int [] array) {
        if (array.length==1)
            return array[0];
        HashMap<Integer,Integer> hashMap = new HashMap<>();
        int index = 0;
        for (int i : array) {
            if (hashMap.containsKey(i)) {
                if (hashMap.get(i)+1 > array.length/2) {
                    return i;
                } else hashMap.put(i,hashMap.get(i)+1);
            }else {
                hashMap.put(i,1);
            }
        }
        return index;
    }

}
